/**
 * @map reqList 正在执行的请求列表
 * @param config 请求配置信息
 * @reqList  请求列表
 */
 import axios,{AxiosRequestConfig} from "axios"

let reqList=new Map()


export const addReq=(config:AxiosRequestConfig)=>{
    let cancel:any
    // 设置cancelToken对象
    config.cancelToken = new axios.CancelToken(function(c) {
        cancel = c
    })
    let key=config.method+JSON.stringify(config.params)+JSON.stringify(config.data)+config.url
    if(reqList.has(key)){         //如果当前参数存在
        cancel("目前有相同请求未执行完")
    }else{
        reqList.set(key,cancel)
    }
}

export const removeReq=(config:AxiosRequestConfig)=>{
    let key=config.method+JSON.stringify(config.params)+JSON.stringify(config.data)+config.url
    reqList.delete(key)
}

export const clearReq=()=>{
    reqList.clear()
}
